/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ssp.agent;

import java.util.List;

/**
 * 品質要求を表すクラス<br>
 * サービス品質とネットワーク品質の両方を含む
 * @author yamazaki
 */
public class QualityDemand {
    
    /**
     * サービスの種類
     */
    private final int typeID;
    
    /**
     * サービス品質
     */
    private final List<Integer> serviceQualityList;
    
    /**
     * サービス時間
     */
    private final double serviceTimeLength;
    
    /**
     * ネットワーク品質
     */
    private final List<Double> networkQualityList;
    
    /**
     * 通信帯域
     */
    private final double bandwidth;

    /**
     * コンストラクタ
     * @param typeID サービスの種類
     * @param serviceQualityList サービス品質
     * @param serviceTimeLength サービス時間
     * @param networkQualityList ネットワーク品質
     * @param bandwidth 通信帯域
     */
    public QualityDemand(int typeID, List<Integer> serviceQualityList, double serviceTimeLength, List<Double> networkQualityList, double bandwidth) {
        this.typeID = typeID;
        this.serviceQualityList = serviceQualityList;
        this.serviceTimeLength = serviceTimeLength;
        this.networkQualityList = networkQualityList;
        this.bandwidth = bandwidth;
    }

    /**
     * @return the bandwidth
     */
    public double getBandwidth() {
        return bandwidth;
    }

    /**
     * @return the networkQualityList
     */
    public List<Double> getNetworkQualityList() {
        return networkQualityList;
    }

    /**
     * @return the serviceQualityList
     */
    public List<Integer> getServiceQualityList() {
        return serviceQualityList;
    }

    /**
     * @return the typeID
     */
    public int getTypeID() {
        return typeID;
    }

    /**
     * @return the serviceTimeLength
     */
    public double getServiceTimeLength() {
        return serviceTimeLength;
    }
    
}
